home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 May / com_0505_1.iso / opensource / top10 / amc_install.exe / {app} / Scripts / netpiac.hu.ifs < prev    next >
Encoding:
Text File  |  2004-03-20  |  9.0 KB  |  311 lines

  1. // GETINFO SCRIPTING
  2. // NetPiac.hu (HUN) import
  3.  
  4. (***************************************************
  5.  *  Movie importation script for:                  *
  6.  *      NetPiac.hu (HU), http://www.netpiac.hu     *
  7.  *  V1.0                                               *
  8.  *  (c) 2003 Zoltan Karpati    pinyo@gibzone.hu    *
  9.  *                                                 *
  10.  *  For use with Ant Movie Catalog 3.4.0           *
  11.  *  www.antp.be/software/moviecatalog              *
  12.  *                                                 *
  13.  *  This program is free software; you can         *
  14.  *  redistribute it and/or modify it under the     *
  15.  *  terms of the GNU General Public License as     *
  16.  *  published by the Free Software Foundation;     *
  17.  *  either version 2 of the License, or (at your   *
  18.  *  option) any later version.                     *
  19.  ***************************************************)
  20.  
  21. program netpiac;
  22.  
  23. var
  24.   MovieName: string;
  25.   
  26. function RemoveHTML(Szoveg: string): String;
  27. begin
  28.   HTMLRemovetags(Szoveg);
  29.   HTMLDecode(Szoveg);
  30.   Szoveg := StringReplace(Szoveg, '%20', ' ');
  31.   Szoveg := StringReplace(Szoveg, '<i>', '');
  32.   Szoveg := StringReplace(Szoveg, '</i>', '');
  33.   Szoveg := StringReplace(Szoveg, '<b>', '');
  34.   Szoveg := StringReplace(Szoveg, '</b>', '');
  35.   Szoveg := StringReplace(Szoveg, '</p>', '');
  36.   Szoveg := StringReplace(Szoveg, '  ', ' ');
  37.   Szoveg := StringReplace(Szoveg, '  ', ' ');
  38.   result := Trim(Szoveg);
  39. end;
  40.  
  41. function AddHTML(Szoveg: string): String;
  42. begin
  43.   Szoveg := StringReplace(Szoveg, ' ','%20');
  44.   result := Szoveg;
  45. end;
  46.  
  47. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  48. var
  49.   i: Integer;
  50. begin
  51.   result := -1;
  52.   if StartAt < 0 then
  53.     StartAt := 0;
  54.   for i := StartAt to List.Count-1 do
  55.     if Pos(Pattern, List.GetString(i)) <> 0 then
  56.     begin
  57.       result := i;
  58.       Break;
  59.     end;
  60. end;
  61.  
  62. procedure AnalyzePage(Address: string);
  63. var
  64.   Page: TStringList;
  65.   LineNr: Integer;
  66. begin
  67.   Page := TStringList.Create;
  68.   Page.Text := GetPage(Address);
  69.     if pos('<!--tΘtel eleje-->', Page.Text) = 0 then
  70.   begin
  71.     AnalyzeMoviePage(Page)
  72.   end else
  73.   begin
  74.  
  75.     PickTreeClear;
  76.     LineNr := 0;
  77.     LineNr := FindLine('<!--tΘtel eleje-->', Page, LineNr);
  78.     if LineNr > -1 then
  79.     begin
  80.       PickTreeAdd('DVD filmek:', '');
  81.       AddMoviesTitles(Page, LineNr);
  82.     end;
  83.     if PickTreeExec(Address) then
  84.       AnalyzePage(Address);
  85.   end;
  86.   Page.Free;
  87. end;
  88.  
  89. procedure AnalyzeMoviePage(Page: TStringList);
  90. var
  91.   Line, Value, Value2, FullValue: string;
  92.   LineNr: Integer;
  93.   Adder: Integer;
  94.   Rate: Integer;
  95.   BeginPos, EndPos: Integer;
  96. begin
  97.   // fieldURL
  98.   LineNr := FindLine('<!--SHOP MODUL ELEJE', Page, 0);
  99.   if LineNr > -1 then
  100.   begin
  101.     Line := Page.GetString(LineNr+4);
  102.     BeginPos := pos('termek_id', Line)+18;
  103.     EndPos := pos('">', Line);
  104.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  105.     SetField(fieldURL, 'http://www.netpiac.hu/display/index.phtml?do=termek&termek_id=' + Value);
  106.   end;
  107.  
  108.   // fieldSource
  109.   SetField(fieldSource,'NetPiac.hu');
  110.  
  111.   // fieldMediaType
  112.   SetField(fieldMediaType, 'DVD');
  113.  
  114.   // fieldTranslatedTitle fieldOriginalTitle fieldCategory fieldYear fieldCountry
  115.   LineNr := FindLine('<!--kΘpkontΘner vΘge', Page, 0);
  116.   if LineNr > -1 then
  117.   begin
  118.     LineNr := FindLine('ib2">', Page, LineNr);
  119.     Line := Page.GetString(LineNr);
  120.     BeginPos := pos('ib2">', Line)+5;
  121.     EndPos := pos('</span>', Line);
  122.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  123.     SetField(fieldTranslatedTitle,RemoveHTML(Value));
  124.  
  125.     Delete(Line,1,EndPos);
  126.     BeginPos := pos('ib3">', Line)+5;
  127.     EndPos := pos('<br>', Line);
  128.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  129.     SetField(fieldOriginalTitle,RemoveHTML(Value));
  130.  
  131.     Delete(Line,1,EndPos+3);
  132.     EndPos := pos('</span>', Line);
  133.     FullValue := copy(Line, 1, EndPos-1);
  134.  
  135.     EndPos := pos(',',FullValue);
  136.     Value := copy(FullValue, 1, EndPos-1);
  137.     SetField(fieldCategory, RemoveHTML(Value));
  138.  
  139.     Delete(FullValue,1,EndPos+1);
  140.     EndPos := pos('-',FullValue);
  141.     Value := copy(FullValue, 1, EndPos-1);
  142.     SetField(fieldYear,RemoveHTML(Value));
  143.  
  144.     Delete(FullValue,1,EndPos+1);
  145.     EndPos := pos('film',FullValue);
  146.     Value := copy(FullValue, 1, EndPos-1);
  147.     SetField(fieldCountry,RemoveHTML(Value));
  148.  
  149.   end;
  150.  
  151.   // fieldDirector
  152.   LineNr := FindLine('Rendezte:', Page, 0);
  153.   if LineNr > -1 then
  154.   begin
  155.     Line := Page.GetString(LineNr);
  156.     BeginPos := pos('class="ib2">', Line) + 12;
  157.     EndPos := pos('</span></a>', Line)-1;
  158.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  159.     SetField(fieldDirector, RemoveHTML(Value));
  160.   end;
  161.  
  162.   // fieldActors
  163.   LineNr := FindLine('F⌡szerepben: ', Page, 0);
  164.   if LineNr > -1 then
  165.   begin
  166.     Line := Page.GetString(LineNr);
  167.     BeginPos := pos('F⌡szerepben: ', Line) + 12;
  168.     Delete(Line,1, BeginPos);
  169.     FullValue := Line;
  170.     repeat
  171.       LineNr := LineNr + 1;
  172.       Line := Page.GetString(LineNr);
  173.       FullValue := FullValue + Line;
  174.     until Line = '<br><br>';
  175.     SetField(fieldActors, RemoveHTML(FullValue));
  176.   end;
  177.  
  178.   // fieldProducer  - studi≤
  179.   LineNr := FindLine('St·di≤/Forgalmaz≤:', Page, 0);
  180.   if LineNr > -1 then
  181.   begin
  182.     Line := Page.GetString(LineNr);
  183.     BeginPos := pos('St·di≤/Forgalmaz≤:', Line);
  184.     Delete(Line,1,BeginPos);
  185.     BeginPos := pos('top">', Line)+5;
  186.     EndPos := pos('</td></tr>', Line);
  187.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  188.     SetField(fieldProducer,RemoveHTML(Value));
  189.   end;
  190.  
  191.   // fieldLanguages
  192.   LineNr := FindLine('>Hang: <', Page, 0);
  193.   if LineNr > -1 then
  194.   begin
  195.     Line := Page.GetString(LineNr);
  196.     BeginPos := pos('>Hang: <', Line);
  197.     Delete(Line,1,BeginPos);
  198.     BeginPos := pos('top">', Line)+5;
  199.     EndPos := pos('</td></tr>', Line);
  200.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  201.     SetField(fieldLanguages,RemoveHTML(Value));
  202.   end;
  203.  
  204.   // fieldComments Kepformatum
  205.   LineNr := FindLine('KΘp : ', Page, 0);
  206.   FullValue := '';
  207.   if LineNr > -1 then
  208.   begin
  209.     repeat
  210.       LineNr := LineNr + 1;
  211.       Line := Page.GetString(LineNr);
  212.       BeginPos := pos('<td class="txt">', Line);
  213.       if BeginPos > 0 then
  214.       begin
  215.         Delete(Line,1,BeginPos+16);
  216.         FullValue := FullValue + RemoveHTML(Line);
  217.       end;
  218.     until (pos('</tr>', Line) > 0);
  219.     SetField(fieldComments,RemoveHTML(FullValue));
  220.   end;
  221.  
  222.   // fieldSubtitles Kepformatum
  223.   LineNr := FindLine('Felirat nyelv:', Page, 0);
  224.   if LineNr > -1 then
  225.   begin
  226.     Line := Page.GetString(LineNr);
  227.     BeginPos := pos('Felirat nyelv:', Line);
  228.     Delete(Line,1,BeginPos+13);
  229.     EndPos := pos('</td></tr>', Line);
  230.     Value := copy(Line, 1, EndPos);
  231.     SetField(fieldSubtitles,RemoveHTML(Value));
  232.   end;
  233.  
  234.   // fieldLength
  235.   LineNr := FindLine('Hossza:', Page, 0);
  236.   if LineNr > -1 then
  237.   begin
  238.     Line := Page.GetString(LineNr+1);
  239.     BeginPos := pos('"txt">', Line)+6;
  240.     EndPos := pos(' perc', Line);
  241.     Value := copy(Line, BeginPos, EndPos-BeginPos);
  242.     SetField(fieldLength,RemoveHTML(Value));
  243.   end;
  244.  
  245.   // Picture
  246.   LineNr := FindLine('/display/pop.phtml?pic', Page, 0);
  247.   if LineNr > -1 then
  248.   begin
  249.     Line := Page.GetString(LineNr);
  250.     BeginPos := pos('<img src="', Line)+9;
  251.     Delete(Line, 1, BeginPos);
  252.     EndPos := pos('" h', Line);
  253.     Value := copy(Line, 1, EndPos - 1);
  254.     GetPicture('http://www.netpiac.hu' + Value, False);
  255.   end;
  256.  
  257.   // fieldDescription
  258.   LineNr := FindLine('<!--SHOP MODUL V╔GE', Page, 0);
  259.   if LineNr > -1 then
  260.   begin
  261.     Line := Page.GetString(LineNr + 1);
  262.     SetField(fieldDescription, RemoveHTML(Line));
  263.   end;
  264.  
  265.   DisplayResults;
  266. end;
  267.  
  268. procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);
  269. var
  270.   Line: string;
  271.   MovieTitle, MovieAddress: string;
  272.   StartPos: Integer;
  273.   EndPos: Integer;
  274. begin
  275.   LineNr := 0;
  276.   repeat
  277.     LineNr := FindLine('<!--tΘtel eleje-->', Page, LineNr);
  278.     LineNr := LineNr + 1 ;
  279.     Line := Page.GetString(LineNr);
  280.     StartPos := pos('a href="', Line);
  281.     if StartPos > 0 then
  282.     begin
  283.       EndPos := pos('"><img', Line);
  284.       MovieAddress := copy(Line, StartPos + 8, EndPos-StartPos-8);
  285.  
  286.       StartPos := pos('"navu">', Line);
  287.       Delete(Line, 1, StartPos+6);
  288.       EndPos := pos('</a></td>', Line);
  289.       MovieTitle := copy(Line, 1, EndPos-1);
  290.  
  291.       PickTreeAdd(MovieTitle, 'http://www.netpiac.hu' + MovieAddress);
  292.     end;
  293.   until LineNr = 0;
  294.  
  295. end;
  296.  
  297. begin
  298.   if CheckVersion(3,4,0) then
  299.   begin
  300.     MovieName := GetField(fieldOriginalTitle);
  301.     if MovieName = '' then
  302.       MovieName := GetField(fieldTranslatedTitle);
  303.     if Input('Importßlßs a NetPiac.hu-r≤l', 'A film cφme:', MovieName) then
  304.     begin
  305.       AnalyzePage('http://www.netpiac.hu/display/index.phtml?limit=40&style=1&do=talalatok&do2=gyors&ujkereses=1&hol=3&szoveg='+AddHTML(MovieName));
  306.     end;
  307.   end else
  308.     ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.4.0)');
  309. end.
  310.  
  311.